package com.hyt.it.ogt.kq.service.gov.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hyt.it.ogt.kq.service.gov.api.ks.model.QueryUserRoomParam;
import com.hyt.it.ogt.kq.service.gov.api.ks.model.QueryUserTimeParam;
import com.hyt.it.ogt.kq.service.gov.api.ks.model.UserRoomVO;
import com.hyt.it.ogt.kq.service.gov.api.ks.model.UserTimeVO;
import com.hyt.it.ogt.kq.service.gov.model.entity.TimeRoomExaminer;
import com.hyt.it.ogt.kq.service.gov.model.vo.Tree;
import com.hyt.it.ogt.kq.service.gov.model.vo.examiner.TimeRoomExaminerVO;

/**
 * <p>
 * 考务人员场次表 服务类
 * </p>
 *
 * @author wangg
 * @since 2021-11-25
 */
public interface ITimeRoomExaminerService extends IService<TimeRoomExaminer> {

    /**
     * 查询用户和考场的关系数据
     * @param queryUserRoomParam
     * @return
     */
    List<UserRoomVO> getUserRoom(QueryUserRoomParam queryUserRoomParam);

    /**
     * 查询用户和批次的关系数据
     * @param queryUserTimeParam
     * @return
     */
    List<UserTimeVO> getUserTime(QueryUserTimeParam queryUserTimeParam);

    /**
     * 删除批次下的考务人员分配数据
     * @param taskId 考试任务id
     * @param timeId 批次id
     */
    void deleteAllocatedByTimeId(String taskId, String timeId);

    /**
     * 批量添加考务人员批次考场信息
     * @param timeRoomExaminerList
     */
    void insertByBatchByTimeId(List<TimeRoomExaminer> timeRoomExaminerList);

    /**
     * 批量删除批次下的考务人员考场
     * @param timeRoomExaminerVO
     */
    void deleteAllByUserId(TimeRoomExaminerVO timeRoomExaminerVO);

    /**
     * 删除考试任务下的考务人员分配数据
     * @param taskId 考试任务id
     */
    void deleteByTask(String taskId);

    boolean hasArranged(String taskId);


    /**
     * 封装考点考场树形结构
     * @param list
     * @return
     */
    List<Tree> buildTree(List<UserRoomVO> list);


}
